import urllib.request
from selenium import webdriver
import time
# 如果selenium版本变高不需要指定谷歌驱动器的地址 这里是下载3.14.0的版本 最好不要下载过高的版本。
"""基础使用
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

# 你要获取资源的网页
url = 'https://www.baidu.com'

browser.get(url)

content = browser.page_source
print(content)
# 使程序一直运作
# input()
"""


"""元素定位 就是前端的模拟鼠标等事件
from selenium import webdriver

path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'https://www.baidu.com'
browser.get(url)

# 元素定位 如果是高版本的selenium语法就变了

# 根据id来找到对象      常用
# button = browser.find_element_by_id('su')
# print(button)

# 根据标签属性的属性值来获取对象的
# button = browser.find_element_by_name('wd')
# print(button)

# 根据xpath语句来获取对象 多个返回值就选择elements 单个的就是element    常用
# button = browser.find_elements_by_xpath('//input[@id="su"]')
# print(button)

# 根据标签的名字来获取对象
# button = browser.find_elements_by_tag_name('input')
# print(button)

# 使用的bs4的语法来获取对象这里其实是id=su      常用
# button = browser.find_elements_by_css_selector('#su')
# print(button)

# button = browser.find_element_by_link_text('直播')
# print(button)

input = browser.find_element_by_id('su')

# 获取标签的属性
print(input.get_attribute('class'))
# 获取标签的名字
print(input.tag_name)

# 获取元素文本
a = browser.find_element_by_link_text('新闻')
print(a.text)


"""
"""
# 元素交互
from selenium import webdriver

# 创建浏览器对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

# url
url = 'https://www.baidu.com'
browser.get(url)

import time
time.sleep(2)

# 获取文本框的对象（自己检查找到文本框对应的id） 就是百度搜索框
input = browser.find_element_by_id('kw')

# 在文本框中输入周杰伦
input.send_keys('周杰伦')

#设置时间为2秒 防止访问过快导致弹出验证码

time.sleep(2)

# 获取百度一下的按钮
button = browser.find_element_by_id('su')

# 点击按钮
button.click()

time.sleep(2)

# 滑到底部 解决懒加载问题。但有些网页移动不到最
js_bottom = 'document.documentElement.scrollTop=100000'
# 不能滑动时 browser.execute_script("window.scrollBy(0,100000)")
browser.execute_script(js_bottom)

time.sleep(2)

# 获取下一页的按钮  有时候不知道自己获取的是不是唯一值，就需要ctrl+shift+x用xpath的语法找
next = browser.find_element_by_xpath('//a[@class="n"]')

# 点击下一页
next.click()

time.sleep(2)

# 回到上一页
browser.back()

time.sleep(2)

# 回去
browser.forward()

time.sleep(3)

# 退出
browser.quit()

"""

# chrome handless
# 这里调用handless的代码是固定的
# from selenium import webdriver
# from selenium.webdriver.chrome.options import Options
#
# chrome_options = Options()
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--disable-gpu')
#
# # path是你自己的chrome浏览器的文件路径
# path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
# chrome_options.binary_location = path
#
# browser = webdriver.Chrome(chrome_options=chrome_options)
#
# 自己要浏览的网址
# url = 'https://www.baidu.com'
#
# browser.get(url)
#
# browser.save_screenshot('baidu.png')


